import { defaHttp, ApiRes, PagingApi } from "../index";

/**提币记录 */
export async function apiWithdrawCoinLogs(
  data: PagingApi.Req
): Promise<PagingApi.Res<WithdrawCoinLogs.ResItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<WithdrawCoinLogs.ResItem[]>>(
    "/money/withdraw",
    data
  );
  return res;
}

/**提币记录 */
export namespace WithdrawCoinLogs {
  export interface ResItem {
    /**
     * 实际转账金额，示例：1.980000
     */
    actual_number: string;
    /**
     * 币种信息，示例：-
     */
    coin: Coin;
    /**
     * 币种ID，示例：2
     */
    coin_id: number;
    /**
     * 示例：2023-04-08 17:13:17
     */
    created_at: string;
    /**
     * 手续费，示例：0.02
     */
    fee: string;
    /**
     * 示例：2
     */
    id: number;
    /**
     * 提币数量，示例：2.000000
     */
    number: string;
    /**
     * 状态1:成功；2：失败；0区块确认中
     */
    status: number;
    /**
     * 状态 说明，示例：区块确认中
     */
    status_text: string;
    /**
     * 交易标识，示例：null
     */
    txid: string;
  }
}
/**矩阵开启记录 */
export async function apiOpenMatrixLogs(
  data: PagingApi.Req
): Promise<PagingApi.Res<OpenMatrixLogs.ResItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<OpenMatrixLogs.ResItem[]>>(
    "/storage/pay/logs",
    data
  );
  return res;
}
/**矩阵开启记录 */
export namespace OpenMatrixLogs {
  export interface ResItem {
    /**
     * -，示例：1
     */
    coin_id: number;
    /**
     * 时间，示例：2023-11-03 17:05:43
     */
    created_at: string;
    /**
     * -，示例：2
     */
    id: number;
    /**
     * 0：区块确认中；1：确认成功；2：失败
     */
    is_confirm: number;
    /**
     * 0：区块确认中；1：成功；2：失败
     */
    is_storaged: number;
    /**
     * 支付数量，示例：50.00
     */
    number: string;
    /**
     * 交易哈希，示例：0xc360f40e02b0ef54eac4fd22d04fe3e83daa4d528e3bafe3f104a598cb9180f8
     */
    txid: string;
  }
}

/**手续费支付记录 */
export async function apiPayFeeLogs(
  data: PagingApi.Req
): Promise<PagingApi.Res<PayFeeLogs.ResItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<PayFeeLogs.ResItem[]>>(
    "/fee/pay/log",
    data
  );
  return res;
}
/**手续费支付记录 */
export namespace PayFeeLogs {
  export interface ResItem {
    /**
     * -，示例：3
     */
    coin_id: number;
    /**
     * -，示例：2023-12-05 15:26:59
     */
    created_at: string;
    /**
     * -，示例：8
     */
    id: number;
    /**
     * 0：区块确认中；1：确认成功；2：确认失败
     */
    is_confirm: number;
    /**
     * 0：待启用；1：已启用
     */
    is_storaged: number;
    /**
     * 手续费支付金额，示例：0.100000000
     */
    number: string;
    /**
     * -，示例：0xdef9dcf3a29cea1e52f620e46c908b911f99e321db34b9321039724f3148a58a
     */
    txid: string;
  }
}

/**理财收益 */
export async function apiFinancialGetLogs(
  data: FinancialGetLogs.Req
): Promise<PagingApi.Res<FinancialGetLogs.ResItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<FinancialGetLogs.ResItem[]>>(
    "/money/reward",
    data
  );
  return res;
}
/**理财收益 */
export namespace FinancialGetLogs {
  export interface Req extends PagingApi.Req {
    /**1：直推；2：理财 */
    type: number;
  }
  export interface ResItem {
    /**
     * -，示例：null
     */
    created_at: null;
    /**
     * -，示例：1
     */
    floor: number;
    /**
     * -，示例：1
     */
    id: number;
    /**
     * 是否发送到链上，示例：1
     */
    is_send: number;
    /**
     * vcc代币数量，示例：3998.424620
     */
    money: string;
    /**
     * 价格，示例：0.001000
     */
    price: string;
    /**
     * -，示例：-
     */
    produce: Produce;
    /**
     * -，示例：10010
     */
    produce_id: number;
    /**
     * 发送链上时间，示例：2023-12-13 15:19:26
     */
    send_time: string;
    /**
     * 发送哈希，示例：0xbe38c4b3535d37d421abcfe0236ce4e742353b3b5d69b4faecd59138492e81b3
     */
    send_txid: string;
    /**
     * USDT数量，示例：16.0000
     */
    usdt: string;
    /**
     * 获得VCC价值USDT数量
     */
    vcc_usdt: string;
    /**层级收益 */
    base: string;
  }

  /**
   * -，示例：-
   */
  export interface Produce {
    /**
     * 产生人地址，示例：0x446cecd7f4e8f065e43500f66978a9da245a641f
     */
    address: string;
    /**
     * 产生人ID，示例：10010
     */
    id: number;
    /**
     * 产生人等级，示例：7
     */
    level: number;
  }
}

/**vcc外汇记录 */
export async function apiVccForexLogs(
  data: VccForexLogs.Req
): Promise<PagingApi.Res<VccForexLogs.ResItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<VccForexLogs.ResItem[]>>(
    "/money/fund/log",
    data
  );
  return res;
}
/**vcc外汇记录 */
export namespace VccForexLogs {
  export interface Req extends PagingApi.Req {}
  export interface ResItem {
    /**
     * -，示例：2023-12-25 21:46:32
     */
    created_at: string;
    /**
     * -，示例：0
     */
    is_send: number;
    /**
     * -，示例：5000.00
     */
    number: string;
    /**
     * -，示例：null
     */
    send_time: null;
    /**
     * -，示例：null
     */
    txid: null;
  }
}

/**直推列表 */
export async function apiCommunityList(
  data: PagingApi.Req
): Promise<PagingApi.Res<CommunityList.ResItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<CommunityList.ResItem[]>>(
    "/user/my/recommend",
    data
  );
  return res;
}
/**直推列表 */
export namespace CommunityList {
  export interface ResItem {
    /**
     * -，示例：0x1959cf95548a9f643fb9c9ce315e9b5b433c8827
     */
    address?: string;
    /**
     * -，示例：2023-12-07 13:58:14
     */
    created_at?: string;
    /**
     * -，示例：10002
     */
    id?: number;
    /**
     * -，示例：7
     */
    level?: number;
  }

  /**
   * -，示例：-
   */
  export interface FinanceTotal {
    /**
     * 自己的业绩，示例：0.000000
     */
    base: string;
    /**
     * -，示例：190
     */
    id: number;
    /**
     * 团队业绩，示例：0.000000
     */
    performance: string;
    /**
     * -，示例：2
     */
    user_id: number;
  }
}

/**排行榜 */
export async function apiRankingList(): Promise<ApiRes<RankingList.ResItem[]>> {
  const res = await defaHttp.post<ApiRes<RankingList.ResItem[]>>("/rank");
  return res;
}
/**排行榜 */
export namespace RankingList {
  export interface ResItem {
    /**
     * -，示例：0xfb36****5cac
     */
    address: string;
    /**
     * -，示例：580
     */
    money: string;
    /**
     * -，示例：1
     */
    rank: number;
    /**
     * -，示例：0xfb36000000005cac
     */
    show: string;
  }
}
